home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / lisp / kcl / kcl.lha / cmpnew / cmplabel.c < prev    next >
C/C++ Source or Header  |  1987-06-04  |  20KB  |  851 lines

  1.  
  2. /* (C) Copyright Taiichi Yuasa and Masami Hagiya, 1984. All rights reserved. */
  3. #include <cmpinclude.h>
  4. #include "cmplabel.h"
  5. init_cmplabel(start,size,data)char *start;int size;object data;
  6. {    register object *base=vs_top;register object *sup=base+VM2;vs_top=sup;vs_check;
  7.     Cstart=start;Csize=size;Cdata=data;set_VV(VV,VM1,data);
  8.     VV[1]->s.s_stype=(short)stp_special;
  9.     if(VV[1]->s.s_dbind == OBJNULL){
  10.     VV[1]->s.s_dbind = VV[0];}
  11.     VV[2]->s.s_stype=(short)stp_special;
  12.     VV[3]->s.s_stype=(short)stp_special;
  13.     MM(VV[43],L1,start,size,data);
  14.     MM(VV[44],L2,start,size,data);
  15.     MM(VV[45],L3,start,size,data);
  16.     MM(VV[46],L4,start,size,data);
  17.     MF(VV[47],L5,start,size,data);
  18.     MF(VV[48],L6,start,size,data);
  19.     MF(VV[49],L7,start,size,data);
  20.     MF(VV[50],L8,start,size,data);
  21.     vs_top=vs_base=base;
  22. }
  23. /*    macro definition for NEXT-LABEL    */
  24.  
  25. static L1()
  26. {    register object *base=vs_base;
  27.     register object *sup=base+VM3;
  28.     vs_reserve(VM3);
  29.     check_arg(2);
  30.     vs_top=sup;
  31.     {object V1=base[0]->c.c_cdr;
  32.     if(!endp(V1))invalid_macro_call();}
  33.     base[2]= VV[4];
  34.     vs_top=(vs_base=base+2)+1;
  35.     return;
  36. }
  37. /*    macro definition for NEXT-LABEL*    */
  38.  
  39. static L2()
  40. {    register object *base=vs_base;
  41.     register object *sup=base+VM4;
  42.     vs_reserve(VM4);
  43.     check_arg(2);
  44.     vs_top=sup;
  45.     {object V2=base[0]->c.c_cdr;
  46.     if(!endp(V2))invalid_macro_call();}
  47.     base[2]= VV[5];
  48.     vs_top=(vs_base=base+2)+1;
  49.     return;
  50. }
  51. /*    macro definition for WT-LABEL    */
  52.  
  53. static L3()
  54. {    register object *base=vs_base;
  55.     register object *sup=base+VM5;
  56.     vs_reserve(VM5);
  57.     check_arg(2);
  58.     vs_top=sup;
  59.     {object V3=base[0]->c.c_cdr;
  60.     if(endp(V3))invalid_macro_call();
  61.     base[2]= (V3->c.c_car);
  62.     V3=V3->c.c_cdr;
  63.     if(!endp(V3))invalid_macro_call();}
  64.     base[3]= list(2,VV[7],base[2]);
  65.     base[4]= list(2,VV[10],base[2]);
  66.     base[5]= list(4,VV[8],VV[9],base[4],VV[11]);
  67.     base[6]= list(3,VV[6],base[3],base[5]);
  68.     vs_top=(vs_base=base+6)+1;
  69.     return;
  70. }
  71. /*    macro definition for WT-GO    */
  72.  
  73. static L4()
  74. {    register object *base=vs_base;
  75.     register object *sup=base+VM6;
  76.     vs_reserve(VM6);
  77.     check_arg(2);
  78.     vs_top=sup;
  79.     {object V4=base[0]->c.c_cdr;
  80.     if(endp(V4))invalid_macro_call();
  81.     base[2]= (V4->c.c_car);
  82.     V4=V4->c.c_cdr;
  83.     if(!endp(V4))invalid_macro_call();}
  84.     base[3]= list(3,VV[13],base[2],Ct);
  85.     base[4]= list(2,VV[10],base[2]);
  86.     base[5]= list(4,VV[14],VV[15],base[4],VV[16]);
  87.     base[6]= list(3,VV[12],base[3],base[5]);
  88.     vs_top=(vs_base=base+6)+1;
  89.     return;
  90. }
  91. /*    function definition for UNWIND-BDS    */
  92.  
  93. static L5()
  94. {    register object *base=vs_base;
  95.     register object *sup=base+VM7;
  96.     vs_reserve(VM7);
  97.     check_arg(2);
  98.     vs_top=sup;
  99. TTL:;
  100.     if((base[0])==Cnil){
  101.     goto T2;}
  102.     princ_str("\n    bds_unwind(V",VV[17]);
  103.     base[2]= base[0];
  104.     (void)simple_symlispcall_no_event(VV[51],base+2,1);
  105.     princ_str(");",VV[17]);
  106. T2:;
  107.     {int V5;
  108.     V5= 0;
  109. T11:;
  110.     base[2]= make_fixnum(V5);
  111.     if(!(number_compare(base[2],base[1])>=0)){
  112.     goto T12;}
  113.     base[2]= Cnil;
  114.     vs_top=(vs_base=base+2)+1;
  115.     return;
  116. T12:;
  117.     princ_str("\n    bds_unwind1;",VV[17]);
  118.     V5= (V5)+1;
  119.     goto T11;}
  120. }
  121. /*    function definition for UNWIND-EXIT    */
  122.  
  123. static L6()
  124. {    register object *base=vs_base;
  125.     register object *sup=base+VM8;
  126.     vs_reserve(VM8);
  127.     bds_check;
  128.     if(vs_top-vs_base<1) too_few_arguments();
  129.     if(vs_top-vs_base>2) too_many_arguments();
  130.     vs_base=vs_base+1;
  131.     if(vs_base>=vs_top){vs_top=sup;goto T21;}
  132.     vs_top=sup;
  133.     goto T22;
  134. T21:;
  135.     base[1]= Cnil;
  136. T22:;
  137.     {int V6;
  138.     bds_bind(VV[18],symbol_value(VV[18]));
  139.     base[3]= Cnil;
  140.     V6= 0;
  141.     if(!(base[0]==VV[19])){
  142.     goto T25;}
  143.     if(symbol_value(VV[20])==VV[21]){
  144.     goto T25;}
  145.     if(symbol_value(VV[20])==VV[22]){
  146.     goto T25;}
  147.     princ_str("\n    ",VV[17]);
  148.     (void)simple_symlispcall_no_event(VV[52],base+4,0);
  149. T25:;
  150.     if(!(type_of(symbol_value(VV[20]))==t_cons)){
  151.     goto T35;}
  152.     if(!(car(symbol_value(VV[20]))==VV[23])){
  153.     goto T35;}
  154.     base[4]= base[0];
  155.     base[5]= cadr(symbol_value(VV[20]));
  156.     (void)simple_symlispcall_no_event(VV[53],base+4,2);
  157.     if(!(base[0]==Ct)){
  158.     goto T33;}
  159.     base[4]= Cnil;
  160.     vs_top=(vs_base=base+4)+1;
  161.     bds_unwind1;
  162.     return;
  163. T35:;
  164.     if(!(type_of(symbol_value(VV[20]))==t_cons)){
  165.     goto T33;}
  166.     if(!(car(symbol_value(VV[20]))==VV[24])){
  167.     goto T33;}
  168.     base[4]= base[0];
  169.     base[5]= cadr(symbol_value(VV[20]));
  170.     (void)simple_symlispcall_no_event(VV[54],base+4,2);
  171.     if((base[0])!=Cnil){
  172.     goto T33;}
  173.     base[4]= Cnil;
  174.     vs_top=(vs_base=base+4)+1;
  175.     bds_unwind1;
  176.     return;
  177. T33:;
  178.     {object V7;
  179.     base[4]= symbol_value(VV[3]);
  180.     V7= car(base[4]);
  181. T55:;
  182.     if(!(endp(base[4]))){
  183.     goto T56;}
  184.     symlispcall_no_event(VV[55],base+5,0);
  185.     bds_unwind1;
  186.     return;
  187. T56:;
  188.     if(!(type_of((V7))==t_cons)){
  189.     goto T62;}
  190.     if(!((V7)==symbol_value(VV[2]))){
  191.     goto T65;}
  192.     if(!(type_of(symbol_value(VV[20]))==t_cons)){
  193.     goto T69;}
  194.     if(car(symbol_value(VV[20]))==VV[23]){
  195.     goto T68;}
  196.     if(!(car(symbol_value(VV[20]))==VV[24])){
  197.     goto T69;}
  198. T68:;
  199.     base[5]= base[3];
  200.     base[6]= make_fixnum(V6);
  201.     vs_top=(vs_base=base+5)+2;
  202.     L5();
  203.     vs_top=sup;
  204.     goto T67;
  205. T69:;
  206.     if((base[3])!=Cnil){
  207.     goto T77;}
  208.     if(!((V6)>0)){
  209.     goto T78;}
  210. T77:;
  211.     if(!(type_of(base[0])==t_cons)){
  212.     goto T83;}
  213.     if(!(car(base[0])==VV[25])){
  214.     goto T86;}
  215.     {object x= structure_ref(cadr(base[0]),VV[25],1),V8= VV[26];
  216.     while(!endp(V8))
  217.     if(eql(x,V8->c.c_car)){
  218.     goto T82;
  219.     }else V8=V8->c.c_cdr;}
  220. T86:;
  221.     {object x= car(base[0]),V9= VV[27];
  222.     while(!endp(V9))
  223.     if(eql(x,V9->c.c_car)){
  224.     goto T90;
  225.     }else V9=V9->c.c_cdr;
  226.     goto T83;}
  227. T90:;
  228. T82:;
  229.     if(!(type_of(symbol_value(VV[20]))==t_cons)){
  230.     goto T92;}
  231.     if(!(car(symbol_value(VV[20]))==VV[28])){
  232.     goto T92;}
  233.     base[5]= base[0];
  234.     (void)simple_symlispcall_no_event(VV[56],base+5,1);
  235.     base[5]= base[3];
  236.     base[6]= make_fixnum(V6);
  237.     vs_top=(vs_base=base+5)+2;
  238.     L5();
  239.     vs_top=sup;
  240.     goto T67;
  241. T92:;
  242.     base[6]= simple_symlispcall_no_event(VV[57],base+7,0);
  243.     base[5]= list(2,VV[28],base[6]);
  244.     bds_bind(VV[20],base[5]);
  245.     base[7]= base[0];
  246.     base[8]= simple_symlispcall_no_event(VV[56],base+7,1);
  247.     bds_unwind1;
  248.     base[6]= base[3];
  249.     base[7]= make_fixnum(V6);
  250.     vs_top=(vs_base=base+6)+2;
  251.     L5();
  252.     vs_top=sup;
  253.     base[6]= base[5];
  254.     (void)simple_symlispcall_no_event(VV[56],base+6,1);
  255.     goto T67;
  256. T83:;
  257.     base[5]= base[3];
  258.     base[6]= make_fixnum(V6);
  259.     vs_top=(vs_base=base+5)+2;
  260.     L5();
  261.     vs_top=sup;
  262.     base[5]= base[0];
  263.     (void)simple_symlispcall_no_event(VV[56],base+5,1);
  264.     goto T67;
  265. T78:;
  266.     base[5]= base[0];
  267.     (void)simple_symlispcall_no_event(VV[56],base+5,1);
  268. T67:;
  269.     if((base[1])==Cnil){
  270.     goto T113;}
  271.     princ_str("\n    ",VV[17]);
  272.     if(type_of(symbol_value(VV[2]))!=t_cons)FEwrong_type_argument(Scons,symbol_value(VV[2]));
  273.     (symbol_value(VV[2]))->c.c_cdr = Ct;
  274.     princ_str("goto T",VV[17]);
  275.     base[5]= car(symbol_value(VV[2]));
  276.     (void)simple_symlispcall_no_event(VV[51],base+5,1);
  277.     princ_char(59,VV[17]);
  278. T113:;
  279.     base[5]= Cnil;
  280.     vs_top=(vs_base=base+5)+1;
  281.     bds_unwind1;
  282.     return;
  283. T65:;
  284.     base[1]= Ct;
  285.     goto T60;
  286. T62:;
  287.     if(!(type_of((V7))==t_fixnum||
  288. type_of((V7))==t_bignum||
  289. type_of((V7))==t_ratio||
  290. type_of((V7))==t_shortfloat||
  291. type_of((V7))==t_longfloat||
  292. type_of((V7))==t_complex)){
  293.     goto T124;}
  294.     base[3]= (V7);
  295.     V6= 0;
  296.     goto T60;
  297. T124:;
  298.     if(!((V7)==VV[29])){
  299.     goto T130;}
  300.     V6= (V6)+(1);
  301.     goto T60;
  302. T130:;
  303.     if(!((V7)==VV[21])){
  304.     goto T134;}
  305.     if(!(symbol_value(VV[2])==VV[21])){
  306.     goto T60;}
  307.     base[5]= base[0];
  308.     (void)simple_symlispcall_no_event(VV[56],base+5,1);
  309.     base[5]= base[3];
  310.     base[6]= make_fixnum(V6);
  311.     vs_top=(vs_base=base+5)+2;
  312.     L5();
  313.     vs_top=sup;
  314.     princ_str("\n    return;",VV[17]);
  315.     base[5]= Cnil;
  316.     vs_top=(vs_base=base+5)+1;
  317.     bds_unwind1;
  318.     return;
  319. T134:;
  320.     if(!((V7)==VV[31])){
  321.     goto T146;}
  322.     if(!(type_of(base[0])==t_cons)){
  323.     goto T148;}
  324.     {object x= car(base[0]),V10= VV[32];
  325.     while(!endp(V10))
  326.     if(eql(x,V10->c.c_car)){
  327.     goto T152;
  328.     }else V10=V10->c.c_cdr;
  329.     goto T148;}
  330. T152:;
  331.     if(!(type_of(symbol_value(VV[20]))==t_cons)){
  332.     goto T154;}
  333.     if(!(car(symbol_value(VV[20]))==VV[28])){
  334.     goto T154;}
  335.     base[5]= base[0];
  336.     (void)simple_symlispcall_no_event(VV[56],base+5,1);
  337.     base[0]= symbol_value(VV[20]);
  338.     goto T148;
  339. T154:;
  340.     base[6]= simple_symlispcall_no_event(VV[57],base+7,0);
  341.     base[5]= list(2,VV[28],base[6]);
  342.     bds_bind(VV[20],base[5]);
  343.     base[6]= base[0];
  344.     (void)simple_symlispcall_no_event(VV[56],base+6,1);
  345.     base[0]= (VV[20]->s.s_dbind);
  346.     bds_unwind1;
  347. T148:;
  348.     princ_str("\n    frs_pop();",VV[17]);
  349.     goto T60;
  350. T146:;
  351.     base[5]= ((V7)==VV[33]?Ct:Cnil);
  352.     if((base[5])==Cnil){
  353.     goto T169;}
  354.     goto T60;
  355. T169:;
  356.     if(!((V7)==VV[34])){
  357.     goto T172;}
  358.     base[1]= Ct;
  359.     goto T60;
  360. T172:;
  361.     if(!((V7)==VV[35])){
  362.     goto T176;}
  363.     if(!(symbol_value(VV[2])==VV[35])){
  364.     goto T60;}
  365.     if((base[3])!=Cnil){
  366.     goto T181;}
  367.     if(!((V6)>0)){
  368.     goto T182;}
  369. T181:;
  370.     base[6]= base[0];
  371.     if((simple_symlispcall_no_event(VV[58],base+6,1))==Cnil){
  372.     goto T187;}
  373.     setq(VV[36],number_plus(symbol_value(VV[36]),VV[30]));
  374.     base[6]= symbol_value(VV[36]);
  375.     princ_str("\n    {int V",VV[17]);
  376.     base[7]= base[6];
  377.     (void)simple_symlispcall_no_event(VV[51],base+7,1);
  378.     princ_str("= ",VV[17]);
  379.     base[7]= base[0];
  380.     (void)simple_symlispcall_no_event(VV[59],base+7,1);
  381.     princ_char(59,VV[17]);
  382.     base[7]= base[3];
  383.     base[8]= make_fixnum(V6);
  384.     vs_top=(vs_base=base+7)+2;
  385.     L5();
  386.     vs_top=sup;
  387.     princ_str("\n    VMR",VV[17]);
  388.     base[7]= symbol_value(VV[37]);
  389.     (void)simple_symlispcall_no_event(VV[51],base+7,1);
  390.     princ_str("(V",VV[17]);
  391.     base[7]= base[6];
  392.     (void)simple_symlispcall_no_event(VV[51],base+7,1);
  393.     princ_str(")}",VV[17]);
  394.     goto T180;
  395. T187:;
  396.     base[6]= simple_symlispcall_no_event(VV[57],base+7,0);
  397.     princ_str("\n    ",VV[17]);
  398.     base[7]= base[6];
  399.     (void)simple_symlispcall_no_event(VV[60],base+7,1);
  400.     princ_str("= ",VV[17]);
  401.     base[7]= base[0];
  402.     (void)simple_symlispcall_no_event(VV[51],base+7,1);
  403.     princ_char(59,VV[17]);
  404.     base[7]= base[3];
  405.     base[8]= make_fixnum(V6);
  406.     vs_top=(vs_base=base+7)+2;
  407.     L5();
  408.     vs_top=sup;
  409.     princ_str("\n    VMR",VV[17]);
  410.     base[7]= symbol_value(VV[37]);
  411.     (void)simple_symlispcall_no_event(VV[51],base+7,1);
  412.     princ_str("(fix(",VV[17]);
  413.     base[7]= base[6];
  414.     (void)simple_symlispcall_no_event(VV[60],base+7,1);
  415.     princ_str("))",VV[17]);
  416.     goto T180;
  417. T182:;
  418.     princ_str("\n    VMR",VV[17]);
  419.     base[6]= symbol_value(VV[37]);
  420.     (void)simple_symlispcall_no_event(VV[51],base+6,1);
  421.     princ_char(40,VV[17]);
  422.     base[6]= base[0];
  423.     (void)simple_symlispcall_no_event(VV[59],base+6,1);
  424.     princ_char(41,VV[17]);
  425. T180:;
  426.     base[6]= Cnil;
  427.     vs_top=(vs_base=base+6)+1;
  428.     bds_unwind1;
  429.     return;
  430. T176:;
  431.     if(!((V7)==VV[38])){
  432.     goto T240;}
  433.     if(!(symbol_value(VV[2])==VV[38])){
  434.     goto T60;}
  435.     if((base[3])!=Cnil){
  436.     goto T245;}
  437.     if(!((V6)>0)){
  438.     goto T246;}
  439. T245:;
  440.     base[6]= base[0];
  441.     if((simple_symlispcall_no_event(VV[61],base+6,1))==Cnil){
  442.     goto T251;}
  443.     setq(VV[36],number_plus(symbol_value(VV[36]),VV[30]));
  444.     base[6]= symbol_value(VV[36]);
  445.     princ_str("\n    {unsigned char V",VV[17]);
  446.     base[7]= base[6];
  447.     (void)simple_symlispcall_no_event(VV[51],base+7,1);
  448.     princ_str("= ",VV[17]);
  449.     base[7]= base[0];
  450.     (void)simple_symlispcall_no_event(VV[62],base+7,1);
  451.     princ_char(59,VV[17]);
  452.     base[7]= base[3];
  453.     base[8]= make_fixnum(V6);
  454.     vs_top=(vs_base=base+7)+2;
  455.     L5();
  456.     vs_top=sup;
  457.     princ_str("\n    VMR",VV[17]);
  458.     base[7]= symbol_value(VV[37]);
  459.     (void)simple_symlispcall_no_event(VV[51],base+7,1);
  460.     princ_str("(V",VV[17]);
  461.     base[7]= base[6];
  462.     (void)simple_symlispcall_no_event(VV[51],base+7,1);
  463.     princ_str(")}",VV[17]);
  464.     goto T244;
  465. T251:;
  466.     base[6]= simple_symlispcall_no_event(VV[57],base+7,0);
  467.     princ_str("\n    ",VV[17]);
  468.     base[7]= base[6];
  469.     (void)simple_symlispcall_no_event(VV[60],base+7,1);
  470.     princ_str("= ",VV[17]);
  471.     base[7]= base[0];
  472.     (void)simple_symlispcall_no_event(VV[51],base+7,1);
  473.     princ_char(59,VV[17]);
  474.     base[7]= base[3];
  475.     base[8]= make_fixnum(V6);
  476.     vs_top=(vs_base=base+7)+2;
  477.     L5();
  478.     vs_top=sup;
  479.     princ_str("\n    VMR",VV[17]);
  480.     base[7]= symbol_value(VV[37]);
  481.     (void)simple_symlispcall_no_event(VV[51],base+7,1);
  482.     princ_str("(char-code(",VV[17]);
  483.     base[7]= base[6];
  484.     (void)simple_symlispcall_no_event(VV[60],base+7,1);
  485.     princ_str("))",VV[17]);
  486.     goto T244;
  487. T246:;
  488.     princ_str("\n    VMR",VV[17]);
  489.     base[6]= symbol_value(VV[37]);
  490.     (void)simple_symlispcall_no_event(VV[51],base+6,1);
  491.     princ_char(40,VV[17]);
  492.     base[6]= base[0];
  493.     (void)simple_symlispcall_no_event(VV[62],base+6,1);
  494.     princ_char(41,VV[17]);
  495. T244:;
  496.     base[6]= Cnil;
  497.     vs_top=(vs_base=base+6)+1;
  498.     bds_unwind1;
  499.     return;
  500. T240:;
  501.     if(!((V7)==VV[39])){
  502.     goto T304;}
  503.     if(!(symbol_value(VV[2])==VV[39])){
  504.     goto T60;}
  505.     if((base[3])!=Cnil){
  506.     goto T309;}
  507.     if(!((V6)>0)){
  508.     goto T310;}
  509. T309:;
  510.     base[6]= base[0];
  511.     if((simple_symlispcall_no_event(VV[63],base+6,1))==Cnil){
  512.     goto T315;}
  513.     setq(VV[36],number_plus(symbol_value(VV[36]),VV[30]));
  514.     base[6]= symbol_value(VV[36]);
  515.     princ_str("\n    {int V",VV[17]);
  516.     base[7]= base[6];
  517.     (void)simple_symlispcall_no_event(VV[51],base+7,1);
  518.     princ_str("= ",VV[17]);
  519.     base[7]= base[0];
  520.     (void)simple_symlispcall_no_event(VV[64],base+7,1);
  521.     princ_char(59,VV[17]);
  522.     base[7]= base[3];
  523.     base[8]= make_fixnum(V6);
  524.     vs_top=(vs_base=base+7)+2;
  525.     L5();
  526.     vs_top=sup;
  527.     princ_str("\n    VMR",VV[17]);
  528.     base[7]= symbol_value(VV[37]);
  529.     (void)simple_symlispcall_no_event(VV[51],base+7,1);
  530.     princ_str("(V",VV[17]);
  531.     base[7]= base[6];
  532.     (void)simple_symlispcall_no_event(VV[51],base+7,1);
  533.     princ_str(")}",VV[17]);
  534.     goto T308;
  535. T315:;
  536.     base[6]= simple_symlispcall_no_event(VV[57],base+7,0);
  537.     princ_str("\n    ",VV[17]);
  538.     base[7]= base[6];
  539.     (void)simple_symlispcall_no_event(VV[60],base+7,1);
  540.     princ_str("= ",VV[17]);
  541.     base[7]= base[0];
  542.     (void)simple_symlispcall_no_event(VV[51],base+7,1);
  543.     princ_char(59,VV[17]);
  544.     base[7]= base[3];
  545.     base[8]= make_fixnum(V6);
  546.     vs_top=(vs_base=base+7)+2;
  547.     L5();
  548.     vs_top=sup;
  549.     princ_str("\n    VMR",VV[17]);
  550.     base[7]= symbol_value(VV[37]);
  551.     (void)simple_symlispcall_no_event(VV[51],base+7,1);
  552.     princ_str("(fix(",VV[17]);
  553.     base[7]= base[6];
  554.     (void)simple_symlispcall_no_event(VV[60],base+7,1);
  555.     princ_str("))",VV[17]);
  556.     goto T308;
  557. T310:;
  558.     princ_str("\n    VMR",VV[17]);
  559.     base[6]= symbol_value(VV[37]);
  560.     (void)simple_symlispcall_no_event(VV[51],base+6,1);
  561.     princ_char(40,VV[17]);
  562.     base[6]= base[0];
  563.     (void)simple_symlispcall_no_event(VV[64],base+6,1);
  564.     princ_char(41,VV[17]);
  565. T308:;
  566.     base[6]= Cnil;
  567.     vs_top=(vs_base=base+6)+1;
  568.     bds_unwind1;
  569.     return;
  570. T304:;
  571.     if(!((V7)==VV[40])){
  572.     goto T368;}
  573.     if(!(symbol_value(VV[2])==VV[40])){
  574.     goto T60;}
  575.     if((base[3])!=Cnil){
  576.     goto T373;}
  577.     if(!((V6)>0)){
  578.     goto T374;}
  579. T373:;
  580.     base[6]= base[0];
  581.     if((simple_symlispcall_no_event(VV[65],base+6,1))==Cnil){
  582.     goto T379;}
  583.     setq(VV[36],number_plus(symbol_value(VV[36]),VV[30]));
  584.     base[6]= symbol_value(VV[36]);
  585.     princ_str("\n    {int V",VV[17]);
  586.     base[7]= base[6];
  587.     (void)simple_symlispcall_no_event(VV[51],base+7,1);
  588.     princ_str("= ",VV[17]);
  589.     base[7]= base[0];
  590.     (void)simple_symlispcall_no_event(VV[66],base+7,1);
  591.     princ_char(59,VV[17]);
  592.     base[7]= base[3];
  593.     base[8]= make_fixnum(V6);
  594.     vs_top=(vs_base=base+7)+2;
  595.     L5();
  596.     vs_top=sup;
  597.     princ_str("\n    VMR",VV[17]);
  598.     base[7]= symbol_value(VV[37]);
  599.     (void)simple_symlispcall_no_event(VV[51],base+7,1);
  600.     princ_str("(V",VV[17]);
  601.     base[7]= base[6];
  602.     (void)simple_symlispcall_no_event(VV[51],base+7,1);
  603.     princ_str(")}",VV[17]);
  604.     goto T372;
  605. T379:;
  606.     base[6]= simple_symlispcall_no_event(VV[57],base+7,0);
  607.     princ_str("\n    ",VV[17]);
  608.     base[7]= base[6];
  609.     (void)simple_symlispcall_no_event(VV[60],base+7,1);
  610.     princ_str("= ",VV[17]);
  611.     base[7]= base[0];
  612.     (void)simple_symlispcall_no_event(VV[51],base+7,1);
  613.     princ_char(59,VV[17]);
  614.     base[7]= base[3];
  615.     base[8]= make_fixnum(V6);
  616.     vs_top=(vs_base=base+7)+2;
  617.     L5();
  618.     vs_top=sup;
  619.     princ_str("\n    VMR",VV[17]);
  620.     base[7]= symbol_value(VV[37]);
  621.     (void)simple_symlispcall_no_event(VV[51],base+7,1);
  622.     princ_str("(fix(",VV[17]);
  623.     base[7]= base[6];
  624.     (void)simple_symlispcall_no_event(VV[60],base+7,1);
  625.     princ_str("))",VV[17]);
  626.     goto T372;
  627. T374:;
  628.     princ_str("\n    VMR",VV[17]);
  629.     base[6]= symbol_value(VV[37]);
  630.     (void)simple_symlispcall_no_event(VV[51],base+6,1);
  631.     princ_char(40,VV[17]);
  632.     base[6]= base[0];
  633.     (void)simple_symlispcall_no_event(VV[66],base+6,1);
  634.     princ_char(41,VV[17]);
  635. T372:;
  636.     base[6]= Cnil;
  637.     vs_top=(vs_base=base+6)+1;
  638.     bds_unwind1;
  639.     return;
  640. T368:;
  641.     if(!((V7)==VV[41])){
  642.     goto T432;}
  643.     if(!(symbol_value(VV[2])==VV[41])){
  644.     goto T60;}
  645.     if((base[3])!=Cnil){
  646.     goto T437;}
  647.     if(!((V6)>0)){
  648.     goto T438;}
  649. T437:;
  650.     base[6]= simple_symlispcall_no_event(VV[57],base+7,0);
  651.     princ_str("\n    ",VV[17]);
  652.     base[7]= base[6];
  653.     (void)simple_symlispcall_no_event(VV[60],base+7,1);
  654.     princ_str("= ",VV[17]);
  655.     base[7]= base[0];
  656.     (void)simple_symlispcall_no_event(VV[51],base+7,1);
  657.     princ_char(59,VV[17]);
  658.     base[7]= base[3];
  659.     base[8]= make_fixnum(V6);
  660.     vs_top=(vs_base=base+7)+2;
  661.     L5();
  662.     vs_top=sup;
  663.     princ_str("\n    VMR",VV[17]);
  664.     base[7]= symbol_value(VV[37]);
  665.     (void)simple_symlispcall_no_event(VV[51],base+7,1);
  666.     princ_char(40,VV[17]);
  667.     base[7]= base[6];
  668.     (void)simple_symlispcall_no_event(VV[60],base+7,1);
  669.     princ_char(41,VV[17]);
  670.     goto T436;
  671. T438:;
  672.     princ_str("\n    VMR",VV[17]);
  673.     base[6]= symbol_value(VV[37]);
  674.     (void)simple_symlispcall_no_event(VV[51],base+6,1);
  675.     princ_char(40,VV[17]);
  676.     base[6]= base[0];
  677.     (void)simple_symlispcall_no_event(VV[51],base+6,1);
  678.     princ_char(41,VV[17]);
  679. T436:;
  680.     base[6]= Cnil;
  681.     vs_top=(vs_base=base+6)+1;
  682.     bds_unwind1;
  683.     return;
  684. T432:;
  685.     (void)simple_symlispcall_no_event(VV[55],base+6,0);
  686. T60:;
  687.     base[4]= cdr(base[4]);
  688.     V7= car(base[4]);
  689.     goto T55;}}
  690. }
  691. /*    function definition for UNWIND-NO-EXIT    */
  692.  
  693. static L7()
  694. {    register object *base=vs_base;
  695.     register object *sup=base+VM9;
  696.     vs_reserve(VM9);
  697.     check_arg(1);
  698.     vs_top=sup;
  699. TTL:;
  700.     {int V11;
  701.     base[1]= Cnil;
  702.     V11= 0;
  703.     {object V12;
  704.     base[2]= symbol_value(VV[3]);
  705.     V12= car(base[2]);
  706. T477:;
  707.     if(!(endp(base[2]))){
  708.     goto T478;}
  709.     symlispcall_no_event(VV[55],base+3,0);
  710.     return;
  711. T478:;
  712.     if(!(type_of((V12))==t_cons)){
  713.     goto T484;}
  714.     if(!((V12)==base[0])){
  715.     goto T482;}
  716.     base[3]= base[1];
  717.     base[4]= make_fixnum(V11);
  718.     vs_top=(vs_base=base+3)+2;
  719.     L5();
  720.     vs_top=sup;
  721.     base[3]= Cnil;
  722.     vs_top=(vs_base=base+3)+1;
  723.     return;
  724. T484:;
  725.     if(!(type_of((V12))==t_fixnum||
  726. type_of((V12))==t_bignum||
  727. type_of((V12))==t_ratio||
  728. type_of((V12))==t_shortfloat||
  729. type_of((V12))==t_longfloat||
  730. type_of((V12))==t_complex)){
  731.     goto T492;}
  732.     base[1]= (V12);
  733.     V11= 0;
  734.     goto T482;
  735. T492:;
  736.     if(!((V12)==VV[29])){
  737.     goto T498;}
  738.     V11= (V11)+(1);
  739.     goto T482;
  740. T498:;
  741.     {object x= (V12),V13= VV[42];
  742.     while(!endp(V13))
  743.     if(eql(x,V13->c.c_car)){
  744.     goto T503;
  745.     }else V13=V13->c.c_cdr;
  746.     goto T502;}
  747. T503:;
  748.     if(!(base[0]==(V12))){
  749.     goto T505;}
  750.     base[3]= base[1];
  751.     base[4]= make_fixnum(V11);
  752.     vs_top=(vs_base=base+3)+2;
  753.     L5();
  754.     vs_top=sup;
  755.     base[3]= Cnil;
  756.     vs_top=(vs_base=base+3)+1;
  757.     return;
  758. T505:;
  759.     (void)simple_symlispcall_no_event(VV[55],base+3,0);
  760.     goto T482;
  761. T502:;
  762.     if(!((V12)==VV[31])){
  763.     goto T511;}
  764.     princ_str("\n    frs_pop();",VV[17]);
  765.     goto T482;
  766. T511:;
  767.     if(!((V12)==VV[33])){
  768.     goto T515;}
  769.     if(!(base[0]==VV[33])){
  770.     goto T518;}
  771.     base[3]= base[1];
  772.     base[4]= make_fixnum(V11);
  773.     vs_top=(vs_base=base+3)+2;
  774.     L5();
  775.     vs_top=sup;
  776.     base[3]= Cnil;
  777.     vs_top=(vs_base=base+3)+1;
  778.     return;
  779. T518:;
  780.     (void)simple_symlispcall_no_event(VV[55],base+3,0);
  781.     goto T482;
  782. T515:;
  783.     base[3]= ((V12)==VV[34]?Ct:Cnil);
  784.     if((base[3])==Cnil){
  785.     goto T525;}
  786.     goto T482;
  787. T525:;
  788.     (void)simple_symlispcall_no_event(VV[55],base+4,0);
  789. T482:;
  790.     base[2]= cdr(base[2]);
  791.     V12= car(base[2]);
  792.     goto T477;}}
  793. }
  794. /*    function definition for TAIL-RECURSION-POSSIBLE    */
  795.  
  796. static L8()
  797. {    register object *base=vs_base;
  798.     register object *sup=base+VM10;
  799.     vs_reserve(VM10);
  800.     check_arg(0);
  801.     vs_top=sup;
  802. TTL:;
  803.     {object V14;
  804.     base[0]= symbol_value(VV[3]);
  805.     V14= car(base[0]);
  806. T534:;
  807.     if(!(endp(base[0]))){
  808.     goto T535;}
  809.     symlispcall_no_event(VV[55],base+1,0);
  810.     return;
  811. T535:;
  812.     if(!((V14)==VV[33])){
  813.     goto T541;}
  814.     base[1]= Ct;
  815.     vs_top=(vs_base=base+1)+1;
  816.     return;
  817. T541:;
  818.     if(type_of((V14))==t_fixnum||
  819. type_of((V14))==t_bignum||
  820. type_of((V14))==t_ratio||
  821. type_of((V14))==t_shortfloat||
  822. type_of((V14))==t_longfloat||
  823. type_of((V14))==t_complex){
  824.     goto T543;}
  825.     if((V14)==VV[29]){
  826.     goto T543;}
  827.     if(!((V14)==VV[31])){
  828.     goto T544;}
  829. T543:;
  830.     base[1]= Cnil;
  831.     vs_top=(vs_base=base+1)+1;
  832.     return;
  833. T544:;
  834.     if(!(type_of((V14))==t_cons)){
  835.     goto T551;}
  836.     base[1]= Ct;
  837.     goto T550;
  838. T551:;
  839.     base[1]= ((V14)==VV[34]?Ct:Cnil);
  840. T550:;
  841.     if((base[1])==Cnil){
  842.     goto T554;}
  843.     goto T539;
  844. T554:;
  845.     (void)simple_symlispcall_no_event(VV[55],base+2,0);
  846. T539:;
  847.     base[0]= cdr(base[0]);
  848.     V14= car(base[0]);
  849.     goto T534;}
  850. }
  851.